package com.wzdigit.wms.basic.client.response.transfer;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.wzdigit.wms.basic.domain.inventory.Goods;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;

/**
 * 
 * 计算余留信息
 * @author Administrator
 *
 */
@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler", "fieldHandler" }, ignoreUnknown = false)
public class CalculateRemainResponse implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 4318001816057032145L;
	
	/**
     * 订单数量
     */
    @ApiModelProperty("订单数量")
    private BigDecimal orderQty;

    /**
     * 发货数量
     */
    @ApiModelProperty("发货数量")
    private BigDecimal shipQty;
    
    /**
     * 余留数量
     */
    @ApiModelProperty("余留数量")
    private BigDecimal remainQty;
    
    /**
     * 计算结果
     */
    @ApiModelProperty("计算结果")
    private List<CalculateRemainItemResponse> itemList;
    
    @Data
    @JsonInclude(JsonInclude.Include.NON_NULL)
    @JsonIgnoreProperties(value = { "hibernateLazyInitializer", "handler", "fieldHandler" }, ignoreUnknown = false)
    public static class CalculateRemainItemResponse implements Serializable {
    	/**
		 * 
		 */
		private static final long serialVersionUID = 7347298655823843779L;

		/**
         * 发货单明细ID
         */
        @ApiModelProperty("发货单明细ID")
        private Long gdnDtlId;
        
        /**
         * 发货单表头ID
         */
        @ApiModelProperty("发货单表头ID")
        private Long gdnHeaderId;
        
        /**
         * 发货单号
         */
        @ApiModelProperty("发货单号")
        private String gdnNo;
        
        /**
         * 实际柜号
         */
        @ApiModelProperty("实际柜号")
        private String cntrNo;
        
        /**
         * 采购订单号
         */
        @ApiModelProperty("采购订单号")
        private String poNo;
        
        /**
         * 销售订单号
         */
        @ApiModelProperty("销售订单号")
        private String soNo;
        
        /**
         * 货品Id
         */
        @ApiModelProperty("货品Id")
        private Integer skuId;
        
        /**
         * 货品编码
         */
        @ApiModelProperty("货品编码")
        private String skuCode;
        
        /**
         * 发出仓Id
         */
        @ApiModelProperty("发出仓Id")
        private Integer shipWhsId;
        
        /**
         * 发出仓
         */
        @ApiModelProperty("发出仓")
        private String shipWhsName;
        
        /**
         * 余留仓Id
         */
        @ApiModelProperty("余留仓Id")
        private Integer remainWhsId;
        
        /**
         * 余留仓
         */
        @ApiModelProperty("余留仓")
        private String remainWhsName;
        
        /**
         * 订单数量
         */
        @ApiModelProperty("订单数量")
        private BigDecimal orderQty;

        /**
         * 发货数量
         */
        @ApiModelProperty("发货数量")
        private BigDecimal shipQty;
        
        /**
         * 未拣货数
         */
        @ApiModelProperty("未拣货数")
        private BigDecimal unPickQty;
        
        /**
         * 差异数量
         */
        @ApiModelProperty("差异数量")
        private BigDecimal differenceQty;
        
        /**
         * 余留数量
         */
        @ApiModelProperty("余留数量")
        private BigDecimal remainQty;
        
        /**
         * 是否余留
         */
        @ApiModelProperty("是否余留")
        private String isRemain;
        
        /**
         * 余留的SN
         */
        @JsonIgnore
    	private Goods remainGoods;
        
        /**
         * 是否被复制过
         */
        @JsonIgnore
    	private boolean isCopy;
    }
}
